1. Field of the Invention
The invention relates to the enforcement of Service Level Agreements (SLAs) for delivery of software services over a network.
2. Description of the Prior Art
The Internet, also referred to as an “internetwork”, is a set of computer networks, possibly dissimilar, joined together by means of gateways that handle data transfer and the conversion of messages from the protocols of the sending network to the protocols used by the receiving network (with packets if necessary). When capitalized, the term “Internet” refers to the collection of networks and gateways that use the TCP/IP suite of protocols.
The Internet has become a widely used source of information and entertainment content. With the passage of time users, particularly business users have discovered new ways of using the Internet as a medium for enhancing business effectiveness or generating business opportunities. As a result E-commerce has emerged as the new paradigm of transacting business over the Internet. More recently, the Internet has also begun to be used as a medium for providing software services. This activity has spawned the emerging field of “Web Services”. Remotely located service providers provide software services to clients from a central or distributed resource over the Internet. The client utilizes the hardware and software resources of the service provider without having to invest in these resources himself. The services may include specialized or proprietary software that is not otherwise available to the client. As the offered services are a source of revenue for the service provider and are therefore paid for by the customer, these services are generally required to be supplied against a formal or informal contract, generally termed as a “Service Level Agreement (SLA)”. The SLA defines the scope and level of services provided as well as service level guarantees that ensure quality of service delivered. The service provider is required to comply with the terms of the SLA. At the same time the service provider also needs to enforce the terms of the SLA in terms of the scope and level of guarantees. These actions of ensuring and enforcing compliance have to be implemented automatically with little or no human intervention.
Applications that utilize web services would require different services at different times. These services would also generally be shared amongst several customers to enable economies-of-scale for the service providers as well as to make it cost-effective for the customers who would generally use the services for only short periods spread over time. Given the “as needed” usage of the services customers would generally prefer to pay on the basis of actual usage rather than on a fixed-rate basis. At the same time, given the critical nature of the majority of the services a customer would prefer to use a service that adheres to pre-negotiated SLA parameters, especially in the presence of such resource sharing. These requirements underline the need for automatically monitoring and controlling customer usage. Manual control is infeasible for such purposes.
Unlike outsourcing wherein the customer hands over the job to a third party based on some agreement incorporating a fee and as an output gets a result, the web-service providers let the customer avail their services programmatically as and when required and bill them based on the Service Level Agreement i.e. the facility of using the service is built within the application and the user is unaware of the fact that he is using a remote service. Existing Web-Service providers such as Jamcracker and LoudCloud either use a monthly subscription model or charge on the basis of resources allocated. In some cases the resource is merely hardware dedicated to a customer, and there are no guarantees.
None of these web-services enforce automatic Service Level Agreements. In automatic SLA enforcement, the service provider should bill the customer based on the actual usage, limit the customer's usage to a threshold defined in the SLA, and at the same time strive to maintain a minimum guaranteed throughput. Further on the need of the customers and subject to the availability of resources, the service provider should be capable of offering more than the promised upper limit thereby generating more revenues and a better customer service model.